{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "<p align=\"center\">\n",
    "    <img src=\"https://github.com/GeostatsGuy/GeostatsPy/blob/master/TCG_color_logo.png?raw=true\" width=\"220\" height=\"240\" />\n",
    "\n",
    "</p>\n",
    "\n",
    "## GeostatsPy: Spatial Bootstrap\n",
    "\n",
    "\n",
    "### Michael Pyrcz, Associate Professor, University of Texas at Austin \n",
    "\n",
    "##### [Twitter](https://twitter.com/geostatsguy) | [GitHub](https://github.com/GeostatsGuy) | [Website](http://michaelpyrcz.com) | [GoogleScholar](https://scholar.google.com/citations?user=QVZ20eQAAAAJ&hl=en&oi=ao) | [Book](https://www.amazon.com/Geostatistical-Reservoir-Modeling-Michael-Pyrcz/dp/0199731446) | [YouTube](https://www.youtube.com/channel/UCLqEr-xV-ceHdXXXrTId5ig)  | [LinkedIn](https://www.linkedin.com/in/michael-pyrcz-61a648a1)\n",
    "\n",
    "\n",
    "### A Demonstration of Spatial Boostrap \n",
    "\n",
    "Here's a simple workflow to demonstrate spatial bootstrap and to compare with regular (non-spatial) bootstrap.\n",
    "\n",
    "The workflow steps:\n",
    "\n",
    "1. Build an initial sample set with $ndata$ samples.  Specify locations.  Sort the data in a data only array for \n",
    "   an equal weighted cumulative density function (CDF) for backtransform\n",
    "2. Calculate the covariance matrix (between the data) for LU simulation.  This provides a fast and easy method\n",
    "   to calculate spaitally correlated, unconditional, Gaussian realizations at the data locations.\n",
    "3. Perform LU (lower upper) decomposition of the covariance matrix.  Realizations only require L x random vector.\n",
    "4. Draw from this initial sample set, with replacement, $ndata$ times to build a new realization of the sample.  \n",
    "   Repeat this $nreal$ times to make realizations of the sample.  Use LU simulation to ensure spaital correlation \n",
    "   between samples.  Backtransform from Gaussian to original data values (use percentiles to sample).\n",
    "5. Calculate the statistic of interest for each realization. This demonstration considers the mean only.  \n",
    "   We could have considered any statistic including median, 13th percentile, skew etc. \n",
    "6. (and 7.) Quantify and visualize uncertainty with histograms and summary statistics.\n",
    "\n",
    "References:\n",
    "\n",
    "Efron, 1982, The jackknife, the bootstrap, and other resampling plans, Society of Industrial and Applied Math, \n",
    "CBMS-NSF Monographs, 38.\n",
    "\n",
    "Journel, A. G. Resampling from stochastic simulations. Environmental and Ecological Statistics, 1:63–84, 1994.\n",
    "\n",
    "#### Getting Started\n",
    "\n",
    "Here's the steps to get setup in Python with the GeostatsPy package:\n",
    "\n",
    "1. Install Anaconda 3 on your machine (https://www.anaconda.com/download/). \n",
    "2. From Anaconda Navigator (within Anaconda3 group), go to the environment tab, click on base (root) green arrow and open a terminal. \n",
    "3. In the terminal type: pip install geostatspy. \n",
    "4. Open Jupyter and in the top block get started by copy and pasting the code block below from this Jupyter Notebook to start using the geostatspy functionality. \n",
    "\n",
    "You will need to copy the data file to your working directory.  They are available here:\n",
    "\n",
    "* Tabular data - sample_data.csv at https://git.io/fh4gm.\n",
    "\n",
    "There are exampled below with these functions. You can go here to see a list of the available functions, https://git.io/fh4eX, other example workflows and source code. \n",
    "\n",
    "#### Load the required libraries\n",
    "\n",
    "The following code loads the required libraries."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os                                               # to set current working directory \n",
    "import sys                                              # supress output to screen for interactive variogram modeling\n",
    "import io\n",
    "import numpy as np                                      # arrays and matrix math\n",
    "import pandas as pd                                     # DataFrames\n",
    "import matplotlib.pyplot as plt                         # plotting\n",
    "from matplotlib.pyplot import cm                        # color maps\n",
    "from matplotlib.patches import Ellipse                  # plot an ellipse\n",
    "import math                                             # sqrt operator\n",
    "import scipy\n",
    "import scipy.linalg                                     # SciPy Linear Algebra Library\n",
    "from scipy.stats import norm                            # Gaussian distribution"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Set the working directory\n",
    "\n",
    "I always like to do this so I don't lose files and to simplify subsequent read and writes (avoid including the full address each time). "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "os.chdir(\"c:/PGE383\")                                   # set the working directory"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Assume Data Values and Locations\n",
    "\n",
    "For a simple demonstration we assume 4 data values in 2D and make a CDF by sorting\n",
    "\n",
    "* We will use the CDF for the back transform from Gaussian space."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The user specified data set:\n",
      "\n",
      "  X    Y    Value\n",
      "[[25.  50.   2.3]\n",
      " [75.  80.   5.5]\n",
      " [10.  25.   1. ]\n",
      " [95.  15.   8.7]\n",
      " [25.  53.   3.7]\n",
      " [34.  81.   7.1]\n",
      " [72.  68.   8.2]\n",
      " [ 9.  13.   5.4]\n",
      " [95.  92.   6.2]\n",
      " [58.  32.   2.2]]\n",
      "\n",
      "The data empirical CDF assuming known tails:\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ndata = 10                                              # number of data\n",
    "vmin = 0.0; vmax = 10.0                                 # assume min and max values\n",
    "\n",
    "data = np.zeros((ndata,3))                              # x, y, value \n",
    "data[0,0] = 25.0;  data[0,1] = 50.0;  data[0,2] = 2.3   # data 1\n",
    "data[1,0] = 75.0;  data[1,1] = 80.0;  data[1,2] = 5.5   # data 2\n",
    "data[2,0] = 10.0;  data[2,1] = 25.0;  data[2,2] = 1.0   # data 3\n",
    "data[3,0] = 95.0;  data[3,1] = 15.0;  data[3,2] = 8.7   # data 4\n",
    "data[4,0] = 25.0;  data[4,1] = 53.0;  data[4,2] = 3.7   # data 5\n",
    "data[5,0] = 34.0;  data[5,1] = 81.0;  data[5,2] = 7.1   # data 6\n",
    "data[6,0] = 72.0;  data[6,1] = 68.0;  data[6,2] = 8.2   # data 7\n",
    "data[7,0] = 9.0;   data[7,1] = 13.0;  data[7,2] = 5.4   # data 8\n",
    "data[8,0] = 95.0;  data[8,1] = 92.0;  data[8,2] = 6.2   # data 9\n",
    "data[9,0] = 58.0;  data[9,1] = 32.0;  data[9,2] = 2.2   # data 9\n",
    "\n",
    "print('The user specified data set:\\n')\n",
    "print('  X    Y    Value')\n",
    "print(data) \n",
    "\n",
    "cum_prob = np.zeros(ndata+2)                            # calculate the CDF (piece-wise linear)\n",
    "var = np.zeros(ndata+2)\n",
    "var[0] = vmin; var[ndata+1] = vmax\n",
    "cum_prob[0] = 0.0; cum_prob[ndata+1] = 1.0\n",
    "for i in range(1, ndata+1):\n",
    "    var[i] = data[i-1,2] \n",
    "    cum_prob[i] = i/(ndata+1)\n",
    "var = np.sort(var)    \n",
    "    \n",
    "print('\\nThe data empirical CDF assuming known tails:')\n",
    "\n",
    "plt.subplot(121)\n",
    "im = plt.scatter(data[:,0],data[:,1],c=data[:,2],vmin=vmin,vmax=vmax,edgecolor='black',cmap=plt.cm.inferno)\n",
    "plt.xlim([0,100]); plt.ylim([0,100])\n",
    "cbar = plt.colorbar(im, orientation=\"vertical\", ticks=np.linspace(vmin, vmax, 10))\n",
    "cbar.set_label('Feature Value', rotation=270, labelpad=20)\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.plot(var,cum_prob,c='red',zorder=1); plt.xlabel('Feature Value'); plt.xlim([vmin,vmax]); plt.ylim([0.0,1.0])\n",
    "plt.scatter(var,cum_prob,edgecolor='black',c='red',zorder = 2)\n",
    "plt.ylabel('Cumulative Probability'); plt.title('Feature CDF'); \n",
    "plt.grid(); \n",
    "\n",
    "plt.subplots_adjust(left=0.0, bottom=0.0, right=2.0, top=1.1, wspace=0.3, hspace=0.3)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Calculate the Covariance Matrix\n",
    "\n",
    "The data-to-data covariance matrix is calculated from the distance matrix \n",
    "\n",
    "* assuming a isotropic spherical variogram with range "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The covariance matrix:\n",
      "\n",
      "[[1.   0.22 0.58 0.07 0.96 0.53 0.31 0.43 0.05 0.46]\n",
      " [0.22 1.   0.03 0.14 0.24 0.42 0.82 0.01 0.66 0.3 ]\n",
      " [0.58 0.03 1.   0.03 0.54 0.2  0.08 0.82 0.   0.33]\n",
      " [0.07 0.14 0.03 1.   0.06 0.01 0.23 0.03 0.07 0.42]\n",
      " [0.96 0.24 0.54 0.06 1.   0.57 0.32 0.39 0.06 0.44]\n",
      " [0.53 0.42 0.2  0.01 0.57 1.   0.43 0.1  0.19 0.26]\n",
      " [0.31 0.82 0.08 0.23 0.32 0.43 1.   0.04 0.52 0.45]\n",
      " [0.43 0.01 0.82 0.03 0.39 0.1  0.04 1.   0.   0.28]\n",
      " [0.05 0.66 0.   0.07 0.06 0.19 0.52 0.   1.   0.12]\n",
      " [0.46 0.3  0.33 0.42 0.44 0.26 0.45 0.28 0.12 1.  ]]\n"
     ]
    }
   ],
   "source": [
    "cov = np.zeros((ndata,ndata))                           # covarince matrix initialization\n",
    "var_range = 100.0                                       # isotropic spherical variogram model range\n",
    "\n",
    "for i in range(0, ndata):\n",
    "    for j in range(0, ndata):\n",
    "        distance = math.sqrt(math.pow((data[i,0]-data[j,0]),2) + math.pow((data[i,1]-data[j,1]),2))\n",
    "        cova = 0.0\n",
    "        if(distance < var_range):\n",
    "            hr = distance / var_range\n",
    "            cova = 1.0 - hr*(1.5 - 0.5*hr*hr)           # spherical single, isotropic structure, no nugget\n",
    "            cov[i,j] = cova\n",
    "            \n",
    "print('The covariance matrix:\\n')\n",
    "print(np.round(cov,2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Lower Upper (LU) Decomposition\n",
    "\n",
    "Peform LU decomposition of the covariance matrix\n",
    "\n",
    "* calculate the lower matrix $L$ from the covariance matrix."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The lower matrix:\n",
      "\n",
      "[[ 1.    0.    0.    0.    0.    0.    0.    0.    0.    0.  ]\n",
      " [ 0.22  1.    0.    0.    0.    0.    0.    0.    0.    0.  ]\n",
      " [ 0.58 -0.1   1.    0.    0.    0.    0.    0.    0.    0.  ]\n",
      " [ 0.07  0.13  0.01  1.    0.    0.    0.    0.    0.    0.  ]\n",
      " [ 0.96  0.03 -0.01 -0.01  1.    0.    0.    0.    0.    0.  ]\n",
      " [ 0.53  0.32 -0.12 -0.06  0.62  1.    0.    0.    0.    0.  ]\n",
      " [ 0.31  0.79 -0.03  0.12  0.07  0.05  1.    0.    0.    0.  ]\n",
      " [ 0.43 -0.1   0.86  0.01 -0.08 -0.05 -0.02  1.    0.    0.  ]\n",
      " [ 0.05  0.68  0.06 -0.01 -0.08 -0.06  0.01  0.02  1.    0.  ]\n",
      " [ 0.46  0.21  0.13  0.37 -0.   -0.03  0.37  0.1  -0.07  1.  ]]\n"
     ]
    }
   ],
   "source": [
    "P, L, U = scipy.linalg.lu(cov)                          # LU decomposition of the covariance matrix\n",
    "print('The lower matrix:\\n')\n",
    "print(np.round(L,2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Check the Lower Upper (LU) Decomposition of the Covariance Matrix\n",
    "\n",
    "We can test the lower upper decomposition by multipling the lower and upper matrices and comparing them to the original covariance matrix."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Covariance matrix minus the matrix multiplication of the lower and upper matrices:\n",
      "\n",
      "[[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]\n",
      " [ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]\n",
      " [ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]\n",
      " [ 0.  0.  0.  0. -0. -0.  0.  0.  0.  0.]\n",
      " [ 0.  0.  0. -0.  0. -0.  0.  0.  0.  0.]\n",
      " [ 0.  0. -0. -0. -0.  0.  0.  0.  0.  0.]\n",
      " [ 0.  0.  0. -0.  0.  0.  0.  0.  0. -0.]\n",
      " [ 0. -0.  0.  0.  0.  0.  0.  0.  0.  0.]\n",
      " [ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]\n",
      " [ 0.  0.  0. -0.  0. -0. -0.  0.  0.  0.]]\n"
     ]
    }
   ],
   "source": [
    "test = cov - np.matmul(L,U)                             # check result should be close to zero\n",
    "print('Covariance matrix minus the matrix multiplication of the lower and upper matrices:\\n')\n",
    "print(np.round(test,3))                            "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Calculate Unconditional, Stationary Realizations at the Data Locations \n",
    "\n",
    "The following steps:\n",
    "\n",
    "1. Matrix multiplication of the nxn lower matrix with a 1D matrix of random standard normal values to calculate a realization with spatial correlation at data locations $i = 0,\\ldots,n-1$.\n",
    "\n",
    "2. Convert to p-values with the standard normal CDF\n",
    "\n",
    "3. Transform to discrete values in the data CDF.\n",
    "\n",
    "Realizations stored in output."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "nreal = 10000                                           # number of bootstrap realizations\n",
    "spatial_bootstrap = np.zeros((ndata,nreal))             # array to store spatial bootstrap results\n",
    "for ireal in range(0, nreal):                           # loop over realizations  \n",
    "    rand = np.random.normal(loc = 0.0, scale = 1.0, size = ndata) # random Gaussian values [ndata]\n",
    "    realization = np.matmul(L,rand)                     # impose spatial correlation between the values                   \n",
    "    pvalue = norm.cdf(realization)                      # calculate the p-values\n",
    "    spatial_bootstrap[:,ireal] = np.interp(pvalue,cum_prob,var,left=None, right=None, period=None) # backtransform ot feature values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Visualize Spatial Bootstrap Data Realizations\n",
    "\n",
    "Let's make some histograms of several spatial bootstrap data realizations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "for ix in range(0,4):\n",
    "    plt.subplot(1,4,ix+1)                               # plot histograms of spatial bootstrap data realizations\n",
    "    plt.hist(spatial_bootstrap[:,ix],color='red',alpha=0.2,edgecolor='black',bins=np.linspace(vmin,vmax,20))\n",
    "    plt.xlim([vmin,vmax]); plt.ylim([0,4]); plt.xlabel('Average'); plt.ylabel('Frequency'); plt.title('Spatial Bootstrap Data Realization ' + str(ix+1) + '')\n",
    "\n",
    "plt.subplots_adjust(left=0.0, bottom=0.0, right=4.0, top=1.1, wspace=0.3, hspace=0.3)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Calculate and Summarize the Statistic for Over All Spatial Bootstrap Realizations\n",
    "\n",
    "Calculate the summary statistic over each spatial bootstrap data realization\n",
    "\n",
    "* we show the L arithmetic averages calculated over the spatially correlated ndata realizations "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "summary_spatial_bootstrap = np.average(spatial_bootstrap,axis=0)\n",
    "plt.hist(summary_spatial_bootstrap,color='red',alpha=0.2,edgecolor='black',bins=np.linspace(vmin,vmax,40))\n",
    "plt.xlim([vmin,vmax]); plt.xlabel('Average'); plt.ylabel('Frequency'); plt.title('Spatial Bootstrap Uncertainty in the Average')\n",
    "\n",
    "plt.subplots_adjust(left=0.0, bottom=0.0, right=1.0, top=1.1, wspace=0.3, hspace=0.3)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Calculate and Summarize the Statistic for Over All Regular Bootstrap Realizations and Compare with Spatial Bootstrap\n",
    "\n",
    "Let's repeat the process with regular bootstrap and compare with our spatial bootstrap results.\n",
    "\n",
    "* we will work in Gaussian space and backtransform with the data CDF for consistency"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ejWZmZkccMABu7y+sh70SUREdhD6MC3uQ0RERMq5DRvguuugbduQNH34YZg5U8lSEZEylp2dTYMGDZQsraDMjAYNGpRYDWLVMBURiVXpDvokIiIiMXrhBRg6FL7+Gi65BG67DRo2jDsqEZFKS8nSiq0kX1/VMBURiZM7nrO12A8REREph9LT4Zxz4KyzQv+kM2fC+PFKloqIVHJVq1albdu2tGnThmOOOYb33nuvWOv56quveOKJJ/Itk5WVxf3331+s9YtqmIqIxE81TEVERCqGLVvg7rthxIgwwNMtt8CwYZCWFndkIiKSZNGiOWzenFVi60tLq0fr1h3zLVOzZk0WLFgAwGuvvcZf//pX3n777SJvKzdhesEFF+RZJjdh+sc//nGnedu2baNq1apF3m5looSpiIiIiIjIrpo1C4YMgcWL4cwz4Z57oEWLuKMSEZE8bN6cRbt2jUpsffPmrSxS+R9//JH69esDYcCia6+9lldeeQUz4/rrr6dPnz55Tr/uuutYunQpbdu2ZeDAgXTv3p1LLrmEzZs3k5OTwzPPPMPf//53vvjiC9q2bctvfvMbTj/9dEaNGsV+++3HggUL+OSTTzj77LPJyMggOzubK664gsGDBwNQu3ZtLr30Ut566y3q16/PlClTaNSo5I7V7kAJUxGRWKkPUxERkd3a6tXwl7/AuHHQtClMnw69esUdlYiIlEObNm2ibdu2ZGdn8+233/Lmm28CMG3aNBYsWMDHH3/MqlWr6NChAyeddBLvvfdeyum33HILY8aM4cUXXwRg6NChXHHFFfTv35/Nmzezbds2brnlFhYvXry9RuuMGTP44IMPWLx48fZR5MePH8/ee+/Npk2b6NChA7/97W9p0KABGzZs4JhjjuGOO+7gxhtvZNSoUdx3333xHLSYKGEqIhIrh5wtcQchIiIiReUOEybANddAVlb4e8MNoc9SERGRFBKb5M+ePZsBAwawePFi3n33Xfr160fVqlXZZ5996NKlCx9++GGe0+vWrbvDeo8//nhGjx5NZmYmvXv35uCDD065/WOPPXZ7shTgnnvu4dlnnwUgIyODzz//nAYNGlClShX69OkDwIUXXkjv3r1L43CUaxr0SUQkRu6hhmlxHyIiIhKDJUugSxf43e/gsMNg/ny47TYlS0VEpNCOP/54Vq1axcqVK3H3lGXymp7sggsu4Pnnn6dmzZr06NFje83VZHvuuef2/2fMmMF///tfZs+ezccff8zRRx9NdnZ2yuVKcvT53YVqmIqIxMpBo92LiIjsHjZsgJtugjvugLp14eGH4ZJLoIrqoYjI7quwgx8VZlAjKbxPP/2Ubdu20aBBA0466SQeeughBg4cyJo1a5g5cya33347W7duTTl9xYoV/PTTT9vX9eWXX9KyZUsuv/xyvvzySxYuXEibNm12KJNs3bp11K9fn1q1avHpp58yZ86c7fNycnKYOnUqffv25YknnqBz586leizKIyVMRURERERECvLCCzB0KHz9dUiS3nYbNGwYd1QiIrussIMfFXVQI9lZbh+mEGqPPvroo1StWpVzzjmH2bNn06ZNG8yM2267jX333TfP6Q0aNKBatWq0adOGiy++mOzsbB5//HGqV6/Ovvvuyw033MDee+/NCSecQKtWrTj11FM5/fTTd4ilZ8+ePPjggxx11FEceuihdOz4SzJ8zz33ZMmSJbRr14699tqLJ598skyPU3mghKmISJxcNUxFRETKtfR0uOKKMJjTkUfCzJlw4olxRyUiIrsoLa1eiSaB09LqFVhm27ZtKaebGbfffju33357oaZXr16dN954Y4dpf/3rX3da7xNPPLHD865du27/f4899uCVV17JM9abbrqJm266Kc/5FZ0SpiIicVNfpCIiIuXPli1w990wYkT4gfOWW2DYMEhLizsyEREpAepeQPKjhKmISIwMx1TDVEREpHyZNQuGDIHFi+HMM+Gee6BFi7ijEhERKRPr16+PO4TYKWEqIhInNckXEREpP1avhr/8BcaNg6ZNQzP8Xr3ijkpERETKmIZzFJFKacuWLSxbtoysrIJHgxQREZEKzh0eeQQOPRQmTIBrroFPPlGyVEREpJJSwlREKp3x4x6m2X77cspxHWjepDG/u7A/GzdujCmaqIZpcR8iIiKya5YsgS5d4He/g8MOg/nz4bbboHbtuCMTERGRmChhKiKVymuvvcaIa67ikXb78u5vDmJWj0NZM+dN/vj7QTFF5JhvLfZDREREimnDBrjuOmjbNiRNH34YZs6E1q3jjkxERERipoSpiFQqd992C1cd0oAj69cCYK+0aow+al+efe451qxZU/YBOZCzrfgPERERKboXXoAjj4Rbb4WLLoLPPoNBg6CKbo9ERKT0jB49miOPPJKjjjqKtm3b8v777xdrPTNmzOC9997b/vzBBx9k4sSJ+S4zcuRIxowZk3J6kyZNaNu2LYcddhiXXXYZOTk5xYprwoQJfPPNN/mWmT59Op988kmx1l+WNOiTiFQqKzIzObh5jR2m1U2rRsM9a/D999+z9957l3FEjqlpvYiISNlIT4crrgiDOR15ZKhReuKJcUclIiIxWDRnDptLcEyLtHr1aN2xY57zZ8+ezYsvvshHH33EHnvswapVq9i8eXOxtjVjxgxq165Np06dABgyZEix1pNr2LBhXH311eTk5HDSSSfx9ttvc+7RB7oAACAASURBVPLJJxd5PRMmTKBVq1Y0btw4zzLTp0/njDPO4Igjjthp3tatW6lWrXykKstHFCIiZaTjCZ35z9z/ctTee26f9vmPm/hpSw4tW7aMISJXTVEREZFSMHnSJEYPH87S9HQOb9qU4SecQL/nngsDPN1yCwwbBmlpcYcpIiIx2ZyVRbtGjUpsffNWrsx3/rfffkvDhg3ZY489AGjYsOH2eS1atKBPnz689dZbADzxxBMcdNBBvPDCC9x8881s3ryZBg0aMGnSJDZt2sSDDz5I1apVefzxx7n33nt54403qF27NldffTX//ve/GTt2LJs3b+aggw7iscceo1atWoXah82bN5OdnU39+vUBWLBgAUOGDGHjxo0ceOCBjB8/nvr166ec/sYbbzB37lz69+9PzZo1mT17NqNGjeL555+nWrVqdO/end69e/P888/z9ttvc/PNN/PMM88waNAgOnXqxKxZszjrrLM45JBDdtrnffbZh5EjR/LFF1+wYsUKMjIyuPbaa/nDH/5QnJeqUJQwFZFK5drh19Opw3SM7+i5X12W/ZTNmM9WM+rm0dsvXCIiIrJ7mzxpEsMHD2bcxo10Bt5NT2dQejocfTT9pk2DFi3iDlFEpEwsWjSHzZvzr0W5fPlS2rUrucShpNa9e3duvPFGDjnkELp160afPn3o0qXL9vl169blgw8+YOLEiVx55ZW8+OKLdO7cmTlz5mBmPPzww9x2223ccccdDBkyZHuCFOCNN97Yvp7evXtvTyRef/31jBs3jqFDh+Yb25133snjjz/O119/zamnnkrbtm0BGDBgAPfeey9dunThhhtuYNSoUdx11115Tr/vvvsYM2YM7du3Z82aNTz77LN8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\n",
      "text/plain": [
       "<Figure size 432x288 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "bootstrap = np.zeros((ndata,nreal))                     # array to store spatial bootstrap results\n",
    "for ireal in range(0, nreal):                           # loop over realizations  \n",
    "    rand = np.random.normal(loc = 0.0, scale = 1.0, size = ndata) # random Gaussian values [ndata]                  \n",
    "    pvalue = norm.cdf(rand)                             # calculate the p-values\n",
    "    bootstrap[:,ireal] = np.interp(pvalue,cum_prob,var,left=None, right=None, period=None)\n",
    "\n",
    "summary_bootstrap = np.average(bootstrap,axis=0)\n",
    "\n",
    "plt.subplot(131)\n",
    "im = plt.scatter(data[:,0],data[:,1],c=data[:,2],vmin=vmin,vmax=vmax,edgecolor='black',cmap=plt.cm.inferno)\n",
    "plt.xlim([0,100]); plt.ylim([0,100]); plt.xlabel('X(m)'); plt.ylabel('Y(m)'); plt.title('Data Location Map')\n",
    "cbar = plt.colorbar(im, orientation=\"vertical\", ticks=np.linspace(vmin, vmax, 10))\n",
    "cbar.set_label('Feature Value', rotation=270, labelpad=20)\n",
    "\n",
    "plt.subplot(132)\n",
    "plt.plot(var,cum_prob,c='red',zorder=1); plt.xlabel('Feature Value'); plt.xlim([vmin,vmax]); plt.ylim([0.0,1.0])\n",
    "plt.scatter(var,cum_prob,edgecolor='black',c='red',zorder = 2)\n",
    "plt.ylabel('Cumulative Probability'); plt.title('Feature CDF'); \n",
    "plt.grid(); \n",
    "\n",
    "plt.subplot(133)\n",
    "plt.hist(summary_bootstrap,color='yellow',alpha=0.2,edgecolor='black',bins=np.linspace(vmin,vmax,40),label='Bootstrap')\n",
    "plt.hist(summary_spatial_bootstrap,color='red',alpha=0.2,edgecolor='black',bins=np.linspace(vmin,vmax,40),label='Spatial Bootstrap')\n",
    "plt.legend(loc = 'upper right')\n",
    "plt.xlim([vmin,vmax]); plt.xlabel('Average'); plt.ylabel('Frequency'); plt.title('Bootstrap and Spatial Bootstrap Uncertainty in the Average')\n",
    "\n",
    "plt.subplots_adjust(left=0.0, bottom=0.0, right=3.0, top=1.1, wspace=0.3, hspace=0.3)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Comments\n",
    "\n",
    "This was a basic workflow for spatial and regular bootstrap for uncertainty in a samples statistic through sampling multiple data realizations.\n",
    "\n",
    "I have other demonstrations on the basics of working with DataFrames, ndarrays, univariate statistics, plotting data, declustering, data transformations, trend modeling and many other workflows available at https://github.com/GeostatsGuy/PythonNumericalDemos and https://github.com/GeostatsGuy/GeostatsPy. \n",
    "  \n",
    "I hope this was helpful,\n",
    "\n",
    "*Michael*\n",
    "\n",
    "#### The Author:\n",
    "\n",
    "### Michael Pyrcz, Associate Professor, University of Texas at Austin \n",
    "*Novel Data Analytics, Geostatistics and Machine Learning Subsurface Solutions*\n",
    "\n",
    "With over 17 years of experience in subsurface consulting, research and development, Michael has returned to academia driven by his passion for teaching and enthusiasm for enhancing engineers' and geoscientists' impact in subsurface resource development. \n",
    "\n",
    "For more about Michael check out these links:\n",
    "\n",
    "#### [Twitter](https://twitter.com/geostatsguy) | [GitHub](https://github.com/GeostatsGuy) | [Website](http://michaelpyrcz.com) | [GoogleScholar](https://scholar.google.com/citations?user=QVZ20eQAAAAJ&hl=en&oi=ao) | [Book](https://www.amazon.com/Geostatistical-Reservoir-Modeling-Michael-Pyrcz/dp/0199731446) | [YouTube](https://www.youtube.com/channel/UCLqEr-xV-ceHdXXXrTId5ig)  | [LinkedIn](https://www.linkedin.com/in/michael-pyrcz-61a648a1)\n",
    "\n",
    "#### Want to Work Together?\n",
    "\n",
    "I hope this content is helpful to those that want to learn more about subsurface modeling, data analytics and machine learning. Students and working professionals are welcome to participate.\n",
    "\n",
    "* Want to invite me to visit your company for training, mentoring, project review, workflow design and / or consulting? I'd be happy to drop by and work with you! \n",
    "\n",
    "* Interested in partnering, supporting my graduate student research or my Subsurface Data Analytics and Machine Learning consortium (co-PIs including Profs. Foster, Torres-Verdin and van Oort)? My research combines data analytics, stochastic modeling and machine learning theory with practice to develop novel methods and workflows to add value. We are solving challenging subsurface problems!\n",
    "\n",
    "* I can be reached at mpyrcz@austin.utexas.edu.\n",
    "\n",
    "I'm always happy to discuss,\n",
    "\n",
    "*Michael*\n",
    "\n",
    "Michael Pyrcz, Ph.D., P.Eng. Associate Professor The Hildebrand Department of Petroleum and Geosystems Engineering, Bureau of Economic Geology, The Jackson School of Geosciences, The University of Texas at Austin\n",
    "\n",
    "I have other demonstrations on the basics of working with DataFrames, ndarrays, univariate statistics, plotting data, declustering, data transformations, trend modeling and many other workflows available at https://github.com/GeostatsGuy/PythonNumericalDemos and https://github.com/GeostatsGuy/GeostatsPy. Also, I have posted a lot of other example workflows and source code to help you get learn about and get work done with **Spatial Data Analytics, Geostatistics and Machine Learning** in Python and R. Check out the [GeostatsGuy Inventory](https://github.com/GeostatsGuy/Resources) and I have a [YouTube](https://youtube.com/GeostatsGuyLectures) channel with all my university lectures recorded.\n",
    "  \n",
    "I hope this was helpful,\n",
    "\n",
    "*Michael*\n",
    "\n",
    "Michael Pyrcz, Ph.D., P.Eng. Associate Professor The Hildebrand Department of Petroleum and Geosystems Engineering, Bureau of Economic Geology, The Jackson School of Geosciences, The University of Texas at Austin\n",
    "\n",
    "#### More Resources Available at: [Twitter](https://twitter.com/geostatsguy) | [GitHub](https://github.com/GeostatsGuy) | [Website](http://michaelpyrcz.com) | [GoogleScholar](https://scholar.google.com/citations?user=QVZ20eQAAAAJ&hl=en&oi=ao) | [Book](https://www.amazon.com/Geostatistical-Reservoir-Modeling-Michael-Pyrcz/dp/0199731446) | [YouTube](https://www.youtube.com/channel/UCLqEr-xV-ceHdXXXrTId5ig)  | [LinkedIn](https://www.linkedin.com/in/michael-pyrcz-61a648a1)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
